Software piracy is the unauthorized use or copying of software onto a machine or medium on which use of the software is not authorized. Software piracy costs companies billions of dollars in losses each year. For example, the Software Business Alliance estimates that over thirty-five percent of software applications in the world are pirated. This currently results in a yearly sales loss of about fifty billion dollars.
Current software anti-piracy methods, such as encryption, have only had modest success. For example, if a user has a product key, in some instances, the software can still be used beyond the scope of the original software license.
Another software antipiracy method is the use of guard code in an application. One type of guard reads a value stored in a computing system to determine whether or not the application is authorized to execute on the computing system. A problem with using guards is that their actions can be detected and used when the software is moved to a new computing system. For example, if an application includes guard code that receives a system-specific value before executing, the read operation can be detected, and the system specific value can be copied to a new computing system. When the application is copied to the new computing system, because the correct system-specific value is present, the application will execute on the new application, even though the application is not authorized to be executed on the new computing system.
In addition to the problem of preventing software piracy, it may be desirable to protect documents readable on computing systems such that the documents can only be read by a specific reader application located on an authorized computing system. Because reader applications can be pirated, protecting documents in this manner can be difficult. Accordingly, there exists a need for methods, systems, and computer readable media for preventing software piracy and for protecting digital documents using software piracy prevention methods.